package com.zhihao.zhihaopicturebackend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zhihao.zhihaopicturebackend.model.dto.space.analyze.*;
import com.zhihao.zhihaopicturebackend.model.entity.ServiceSpace;
import com.zhihao.zhihaopicturebackend.model.entity.SystemUser;
import com.zhihao.zhihaopicturebackend.model.vo.space.analyze.*;

import java.util.List;

/**
 * @author Jackson
 * @create 2025/1/8 15:22
 * @description 空间分析
 */
public interface SpaceAnalyzeService extends IService<ServiceSpace> {
    /**
     * 获取空间使用情况分析
     *
     * @param spaceUsageAnalyzeRequest
     * @param loginUser
     * @return
     */
    SpaceUsageAnalyzeResponse getSpaceUsageAnalyze(SpaceUsageAnalyzeRequest spaceUsageAnalyzeRequest, SystemUser loginUser);

    /**
     * 获取空间图片分类分析
     *
     * @param spaceCategoryAnalyzeRequest
     * @param loginUser
     * @return
     */
    List<SpaceCategoryAnalyzeResponse> getSpaceCategoryAnalyze(SpaceCategoryAnalyzeRequest spaceCategoryAnalyzeRequest, SystemUser loginUser);

    /**
     * 获取空间图片标签分析
     *
     * @param spaceTagAnalyzeRequest
     * @param loginUser
     * @return
     */
    List<SpaceTagAnalyzeResponse> getSpaceTagAnalyze(SpaceTagAnalyzeRequest spaceTagAnalyzeRequest, SystemUser loginUser);

    /**
     * 获取空间图片大小分析
     *
     * @param spaceSizeAnalyzeRequest
     * @param loginUser
     * @return
     */
    List<SpaceSizeAnalyzeResponse> getSpaceSizeAnalyze(SpaceSizeAnalyzeRequest spaceSizeAnalyzeRequest, SystemUser loginUser);

    /**
     * 获取空间用户上传行为分析
     *
     * @param spaceUserAnalyzeRequest
     * @param loginUser
     * @return
     */
    List<SpaceUserAnalyzeResponse> getSpaceUserAnalyze(SpaceUserAnalyzeRequest spaceUserAnalyzeRequest, SystemUser loginUser);

    /**
     * 空间使用排行分析（仅管理员）---私有用户空间 谁占用的空间最大
     *
     * @param spaceRankAnalyzeRequest
     * @param loginUser
     * @return
     */
    List<ServiceSpace> getSpaceRankAnalyze(SpaceRankAnalyzeRequest spaceRankAnalyzeRequest, SystemUser loginUser);

}